home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / PASCAL / 1463.ZIP / DRAW-2D.ARC / DRAWOBJ.PAS < prev    next >
Pascal/Delphi Source File  |  1986-12-03  |  6KB  |  175 lines

  1. PROCEDURE DRAWOBJ;
  2.   VAR
  3.     R:REAL;
  4.   BEGIN
  5.     CASE OTYP OF
  6.       1: BEGIN  (*POINT*)
  7.            IF BUTTON2  THEN RING2;
  8.            IF BUTTON1  THEN
  9.               BEGIN
  10.                 M1 := 2;
  11.                 MOUSE(M1,M2,M3,M4);          (* HIDE MOUSE CURSOR *)
  12.                 POINT(PIXX,PIXY,HRCOLOR);
  13.                 M1 := 1;
  14.                 MOUSE(M1,M2,M3,M4);          (* SHOW MOUSE CURSOR *)
  15.                 WITH DRAWARY[OBJPTR] DO      (* STORE OBJECT IN ARRAY *)
  16.                      BEGIN
  17.                        OBJTYP := OTYP;
  18.                        COLOR := HRCOLOR;
  19.                        X1 := X;
  20.                        Y1 := Y;
  21.                        X2 := 0.0;
  22.                        Y2 := 0.0;
  23.                        X3 := 0.0;
  24.                        Y3 := 0.0;
  25.                      END;
  26.                 OBJPTR := OBJPTR + 1;
  27.                 MOVCUR(23,53);
  28.                 WRITE(MAXSIZE-OBJPTR+1:3);
  29.               END;
  30.          END;
  31.   2,5,6: BEGIN  (*LINE*)
  32.            IF BUTTON2 THEN BEGIN STARTOBJ := FALSE; RING2;  END
  33.            else IF (BUTTON1) THEN
  34.                 if not(startobj) then
  35.               BEGIN
  36.                 STARTOBJ := TRUE;
  37.                 PLOT(PIXX,PIXY,0);
  38.                 M1 := 2;
  39.                 MOUSE(M1,M2,M3,M4);          (* HIDE MOUSE *)
  40.                 MARK(PIXX,PIXY,HRCOLOR);
  41.                 M1 := 1;                     (* SHOW MOUSE *)
  42.                 MOUSE(M1,M2,M3,M4);
  43.                 XPREV := PIXX;
  44.                 YPREV := PIXY;
  45.                 LASTX := X;
  46.                 LASTY := Y;
  47.               END
  48.            else
  49.               BEGIN
  50.                 STARTOBJ := FALSE;
  51.                 M1 := 2;
  52.                 MOUSE(M1,M2,M3,M4);          (* HIDE MOUSE CURSOR *)
  53.                 CASE OTYP OF
  54.                 2: BEGIN   END;
  55.                 5: BEGIN
  56.                     PIXX := XPREV;
  57.                     X := LASTX;
  58.                    END;
  59.                 6: BEGIN
  60.                     PIXY := YPREV;
  61.                     Y := LASTY;
  62.                    END;
  63.                 END; (* CASE *)
  64.                 LINE(PIXX,PIXY,HRCOLOR);
  65.                 M1 := 1;
  66.                 MOUSE(M1,M2,M3,M4);          (* SHOW MOUSE CURSOR *)
  67.                 WITH DRAWARY[OBJPTR] DO      (* STORE OBJECT IN ARRAY *)
  68.                      BEGIN
  69.                        OBJTYP := 2;
  70.                        COLOR := HRCOLOR;
  71.                        X1 := LASTX;
  72.                        Y1 := LASTY;
  73.                        X2 := X;
  74.                        Y2 := Y;
  75.                        X3 := 0.0;
  76.                        Y3 := 0.0;
  77.                      END;
  78.                 OBJPTR := OBJPTR + 1;
  79.                 MOVCUR(23,53);
  80.                 WRITE(MAXSIZE-OBJPTR+1:3);
  81.                 IF (OTYP = 2) AND CLIN THEN
  82.                    BEGIN
  83.                      STARTOBJ := TRUE;
  84.                      XPREV := PIXX;
  85.                      YPREV := PIXY;
  86.                      LASTX := X;
  87.                      LASTY := Y;
  88.                    END;
  89.               END;
  90.        END;
  91.       3: BEGIN  (*BOX*)
  92.            IF BUTTON2 THEN BEGIN STARTOBJ := FALSE; RING2; END
  93.            else IF (BUTTON1) THEN
  94.                 if not(startobj) then
  95.               BEGIN
  96.                 STARTOBJ := TRUE;
  97.                 PLOT(PIXX,PIXY,0);
  98.                 M1 := 2;
  99.                 MOUSE(M1,M2,M3,M4);          (* HIDE MOUSE *)
  100.                 MARK(PIXX,PIXY,HRCOLOR);
  101.                 M1 := 1;                     (* SHOW MOUSE *)
  102.                 MOUSE(M1,M2,M3,M4);
  103.                 XPREV := PIXX;
  104.                 YPREV := PIXY;
  105.                 LASTX := X;
  106.                 LASTY := Y;
  107.               END
  108.            else
  109.               BEGIN
  110.                 STARTOBJ := FALSE;
  111.                 M1 := 2;
  112.                 MOUSE(M1,M2,M3,M4);          (* HIDE MOUSE CURSOR *)
  113.                 BOX(PIXX,PIXY,HRCOLOR);
  114.                 M1 := 1;
  115.                 MOUSE(M1,M2,M3,M4);          (* SHOW MOUSE CURSOR *)
  116.                 WITH DRAWARY[OBJPTR] DO      (* STORE OBJECT IN ARRAY *)
  117.                      BEGIN
  118.                        OBJTYP := OTYP;
  119.                        COLOR := HRCOLOR;
  120.                        X1 := LASTX;
  121.                        Y1 := LASTY;
  122.                        X2 := X;
  123.                        Y2 := LASTY;
  124.                        X3 := X;
  125.                        Y3 := Y;
  126.                      END;
  127.                 OBJPTR := OBJPTR + 1;
  128.                 MOVCUR(23,53);
  129.                 WRITE(MAXSIZE-OBJPTR+1:3);
  130.               END;
  131.          END;
  132.       4: BEGIN  (*CIRCLE*)
  133.            IF BUTTON2 THEN BEGIN STARTOBJ := FALSE; RING2;  END
  134.            else IF (BUTTON1) THEN
  135.                 if not(startobj) then
  136.               BEGIN
  137.                 STARTOBJ := TRUE;
  138.                 PLOT(PIXX,PIXY,0);
  139.                 M1 := 2;
  140.                 MOUSE(M1,M2,M3,M4);          (* HIDE MOUSE *)
  141.                 MARK(PIXX,PIXY,HRCOLOR);
  142.                 M1 := 1;                     (* SHOW MOUSE *)
  143.                 MOUSE(M1,M2,M3,M4);
  144.                 XPREV := PIXX;
  145.                 YPREV := PIXY;
  146.                 LASTX := X;
  147.                 LASTY := Y;
  148.               END
  149.            else
  150.               BEGIN
  151.                 STARTOBJ := FALSE;
  152.                 R := SQRT( (X-LASTX)*(X-LASTX) + (Y-LASTY)*(Y-LASTY) );
  153.                 M1 := 2;
  154.                 MOUSE(M1,M2,M3,M4);          (* HIDE MOUSE CURSOR *)
  155.                 GRCIRCLE(LASTX,LASTY,R,HRCOLOR);
  156.                 M1 := 1;
  157.                 MOUSE(M1,M2,M3,M4);          (* SHOW MOUSE CURSOR *)
  158.                 WITH DRAWARY[OBJPTR] DO      (* STORE OBJECT IN ARRAY *)
  159.                      BEGIN
  160.                        OBJTYP := OTYP;
  161.                        COLOR := HRCOLOR;
  162.                        X1 := LASTX;
  163.                        Y1 := LASTY;
  164.                        X2 := R;
  165.                        Y2 := 0.0;
  166.                        X3 := 0.0;
  167.                        Y3 := 0.0;
  168.                      END;
  169.                 OBJPTR := OBJPTR + 1;
  170.                 MOVCUR(23,53);
  171.                 WRITE(MAXSIZE-OBJPTR+1:3);
  172.               END;
  173.          END;
  174.       END; (*CASE *)
  175.    END; (* PROC *)